www.gusucode.com > VANET Toolbox- A Vehicular Network Simulator based on DES 程序工具箱matlab源码 > VANET Toolbox- A Vehicular Network Simulator based on DES/VANET_Toolbox/VANET_Toolbox_multiChannel_2018b/fcn_codeGen.m

    SNR=40;
nVar = 10^(-SNR/10);
cbw='CBW10';  
payloadlength=800;
wsmp=ones(1,payloadlength);
index=1;

%% Code Generate app_wsmp2msg
disp(' ');
disp('Checking app_wsmp2msg_mex...');

mesFileName=strcat('app_wsmp2msg_mex.',mexext);
if exist(mesFileName,'file')==0
    disp([mesFileName ' not found, code generating it.']);
    codegen app_wsmp2msg.m -args {wsmp,index} -report;
    
end

%% Code Generate phy_waveform2psdu_data
disp(' ');
disp('Checking phy_waveform2psdu_data_mex');
detectFileName=strcat('phy_channelpacketDetection_data_mex.',mexext);
receptFileName=strcat('phy_packetReception_noOffset_data_mex.',mexext);

if exist(detectFileName,'file' )==0 || exist(receptFileName,'file')==0 
    disp('phy_waveform2psdu_data_mex not found.');
    [inWaveform,PSDULength]=phy_psdu2waveform(0,0,0,wsmp);  
    [pktOffset,cfgnonHT,outWaveform]  = phy_channelpacketDetection_data(inWaveform,SNR,PSDULength);
    
    if exist(detectFileName,'file' )==0
        disp(['  - code generating ' detectFileName]);
        codegen phy_channelpacketDetection_data -args {inWaveform,SNR,PSDULength} -report;
    end
    
    if exist(receptFileName,'file')==0
        disp(['  - code generating ' receptFileName]);
        codegen phy_packetReception_noOffset_data -args {outWaveform,cfgnonHT,cbw,nVar} -report;
    end
    
end

% 
% %test
% vehicleID=777;
% txAddr=22;
% dstAddress=33;
% SNR=40;
% payloadlength=800;
% wsmp=ones(1,payloadlength);
% wsmp=app_msg2wsmp(vehicleID,wsmp,2);
% txPayloadBuffer=wsmp;
% frameBody=txPayloadBuffer;   
% frameBodyBuffer=frameBody;
% [waveform,waveformLength]=phy_psdu2waveform(0,txAddr,dstAddress,frameBodyBuffer);   
% [ status, outframe, outmsg, type, subtype ] = phy_waveform2psdu_data( waveform,SNR,waveformLength );
% wsmp=outframe;
% vehicleID=app_wsmp2msg(wsmp,2);  
% vehicleID

%% Code Generate phy_waveform2psdu_ack
disp(' ');
disp('Checking phy_waveform2psdu_ack_mex');
detectFileName=strcat('phy_channelpacketDetection_ack_mex.',mexext);
receptFileName=strcat('phy_packetReception_noOffset_ack_mex.',mexext);

if exist(detectFileName,'file')==0 || exist(receptFileName,'file')==0
    disp('phy_waveform2psdu_ack_mex not found.');
    [ackBody,length]=phy_psdu2waveform(1,1);    
    [pktOffset,cfgnonHT,outWaveform]  = phy_channelpacketDetection_ack(ackBody,SNR,length);
    if exist(detectFileName,'file')==0 
        disp(['  - code generating ' detectFileName ]);
        codegen phy_channelpacketDetection_ack -args {ackBody,SNR,length} -report;
    end

    if exist(receptFileName,'file')==0
        disp([ '  - code generating ' receptFileName]);
        codegen phy_packetReception_noOffset_ack -args {outWaveform,cfgnonHT,cbw,nVar} -report; 
    end
end

% % test
% [a,b,c,d,e]=phy_waveform2psdu_ack(ackBody,SNR,length);
% 


%% Codegen phy_psdu2waveform
disp(' ');
disp('Checking phy_psdu2waveform...');
txAddr=1;
rxAddr=1;
frameBody=zeros(1,800);

fileName=strcat('phy_psdu2waveform_ack_mex.',mexext);
if exist(fileName,'file')==0
    disp(['  - ', fileName, ' not detected, generating.']);
    codegen phy_psdu2waveform_ack -args {txAddr} -report;
end

fileName=strcat('phy_psdu2waveform_data_mex.',mexext);
if exist(fileName,'file')==0
    disp(['  - ', fileName, ' not detected, generating.']);
    codegen phy_psdu2waveform_data -args {txAddr,rxAddr,frameBody} -report;
end